home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / tex / macros / misc / ltugbot.sty < prev    next >
Text File  |  1991-08-13  |  12KB  |  349 lines

  1. %        *****    LTUGBOT.STY    *****             6 Feb 88
  2. %                        last revised     1 Mar 89
  3. %
  4. %    Hacks to pieces of article.sty to support a rudimentary
  5. %    pseudo-TUGboat format.
  6. %
  7. %    Incorporates ideas and elements from these TUGboat authors:
  8. %        Adrian Clark
  9.  
  10.  
  11. %  need some more fonts that aren't activated in lfonts
  12. \font\sevbf=cmbx7
  13.  
  14. %  redo definition of 8pt from latex (lfonts), to install amcsc8 instead
  15. %  of de-magnified amcsc10
  16. %\catcode`\@=11
  17. \def\viiipt{\textfont\z@\egtrm 
  18.   \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
  19. \textfont\@ne\egtmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi
  20. \textfont\tw@\egtsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy
  21. \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  22. \def\prm{\fam\z@\egtrm}%
  23. \def\unboldmath{\everymath{}\everydisplay{}\@nomath
  24. \unboldmath\@boldfalse}\@boldfalse
  25. \def\boldmath{\@subfont\boldmath\unboldmath}%
  26. \def\pit{\fam\itfam\egtit}\textfont\itfam\egtit 
  27.    \scriptfont\itfam\sevit \scriptscriptfont\itfam\sevit 
  28. \def\psl{\@getfont\psl\slfam\@viiipt{cmsl8}}%
  29. \def\pbf{\@getfont\pbf\bffam\@viiipt{cmbx8}}%
  30. \def\ptt{\@getfont\ptt\ttfam\@viiipt{cmtt8}}%
  31. \def\psf{\@getfont\psf\sffam\@viiipt{\@mss\@ptscale8}}%
  32. \def\psc{\@getfont\psc\scfam\@viiipt{amcsc8}}%
  33. \def\ly{\fam\lyfam\egtly}\textfont\lyfam\egtly 
  34.     \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly 
  35. \@setstrut \rm}
  36.  
  37. %  redo definition of 10pt, to install \sevenbf as \*scriptfont for \bffam
  38. \def\xpt{\textfont\z@\tenrm 
  39.   \scriptfont\z@\sevrm \scriptscriptfont\z@\fivrm
  40. \textfont\@ne\tenmi \scriptfont\@ne\sevmi \scriptscriptfont\@ne\fivmi
  41. \textfont\tw@\tensy \scriptfont\tw@\sevsy \scriptscriptfont\tw@\fivsy
  42. \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  43. \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
  44.           \textfont\@ne\tenmi 
  45.           \textfont\tw@\tensy \textfont\lyfam\tenly
  46.           \@boldfalse}\@boldfalse
  47. \def\boldmath{\@ifundefined{tenmib}{\global\font\tenmib\@mbi 
  48.    \global\font\tensyb\@mbsy 
  49.    \global\font\tenlyb\@lasyb\relax\@addfontinfo\@xpt
  50.    {\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold
  51.         \textfont\@ne\tenmib \textfont\tw@\tensyb 
  52.         \textfont\lyfam\tenlyb \@prtct\@boldtrue}}}{}\@xpt\boldmath}%
  53. \def\prm{\fam\z@\tenrm}%
  54. \def\pit{\fam\itfam\tenit}\textfont\itfam\tenit \scriptfont\itfam\sevit
  55.     \scriptscriptfont\itfam\sevit
  56. \def\psl{\fam\slfam\tensl}\textfont\slfam\tensl 
  57.      \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl
  58. \def\pbf{\fam\bffam\tenbf}\textfont\bffam\tenbf 
  59.     \scriptfont\bffam\sevbf \scriptscriptfont\bffam\sevbf 
  60. \def\ptt{\fam\ttfam\tentt}\textfont\ttfam\tentt
  61.     \scriptfont\ttfam\tentt \scriptscriptfont\ttfam\tentt
  62. \def\psf{\fam\sffam\tensf}\textfont\sffam\tensf
  63.     \scriptfont\sffam\tensf \scriptscriptfont\sffam\tensf
  64. \def\psc{\@getfont\psc\scfam\@xpt{\@mcsc}}%
  65. \def\ly{\fam\lyfam\tenly}\textfont\lyfam\tenly 
  66.    \scriptfont\lyfam\sevly \scriptscriptfont\lyfam\fivly 
  67. \@setstrut \rm}
  68.  
  69. %\catcode`\@=12
  70.  
  71.  
  72. %  normal TUGboat dimensions
  73.  
  74. \@twosidetrue        % for odd/even asymmetry in running heads
  75. \twocolumn        % two columns
  76. \sloppy            % make those columns justify
  77. %\flushbottom        % but ensure they line up
  78. \columnsep 1.5pc    % space between columns
  79. \columnwidth 18.75pc    % width of each column
  80. \parindent 20pt        % paragraph indent
  81. \parskip 0pt        % no inter-paragraph space
  82. \leftmargini 2em    % unchanged
  83. \leftmarginv .5em    % unchanged
  84. \leftmarginvi .5em    % unchanged
  85. \oddsidemargin 0pt    % was 42pt
  86. \evensidemargin 0pt    % was 84pt
  87. \topmargin -2.5pc    % was 0pt
  88. \headheight 12pt    % height of running head, unchanged
  89. \headsep 20pt        % distance between header and text
  90. \marginparwidth 48pt    % don't use marginal notes
  91. \marginparsep 10pt    %  in TUGboat
  92. \textheight 54pc    % height of text on page
  93. \textwidth 39pc        % total width of a page
  94. %\nofiles
  95.  
  96. \itemsep=2pt plus 2pt minus 1pt
  97.  
  98. \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
  99. \abovedisplayskip=3pt plus 3pt minus 1pt \belowdisplayskip=\abovedisplayskip
  100. \abovedisplayshortskip=\z@ plus3pt \belowdisplayshortskip=1pt plus3pt minus1pt}
  101.  
  102. \def\small{\@setsize\small{11pt}\ixpt\@ixpt
  103. \abovedisplayskip=2.5pt plus2.5pt minus1pt\belowdisplayskip=\abovedisplayskip
  104. \abovedisplayshortskip=\z@ plus2pt \belowdisplayshortskip=1pt plus2pt minus1pt}
  105.  
  106. \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
  107. \abovedisplayskip=3pt plus 3pt minus 1pt \belowdisplayskip=\abovedisplayskip
  108. \abovedisplayshortskip=\z@ plus3pt \belowdisplayshortskip=1pt plus3pt minus1pt}
  109.  
  110. \def\@listi{\parsep=1pt plus 1pt minus 1pt
  111. \itemsep=\parsep}
  112. \def\@listii{\leftmargin\leftmarginii
  113.  \labelwidth=\leftmarginii \advance\labelwidth-\labelsep
  114.  \topsep=2pt plus 1pt minus 1pt
  115.  \parsep=1pt plus 1pt minus 1pt
  116.  \itemsep=\parsep}
  117. \def\@listiii{\leftmargin=\leftmarginiii
  118.  \labelwidth=\leftmarginiii \advance\labelwidth-\labelsep
  119.  \topsep=1pt plus 1pt minus 1pt
  120.  \parsep=\z@
  121.  \itemsep=\topsep}
  122. \partopsep=\z@ \topsep=3pt plus1pt minus1pt
  123. \parsep=3pt plus 1pt minus 1pt \itemsep=\parsep
  124.  
  125. %  not ordinarily in LaTeX, but usually wanted in TUGboat
  126.  
  127. \clubpenalty=10000
  128. \widowpenalty=10000
  129.  
  130.  
  131. %  modify some style elements
  132.  
  133. %    Section titles
  134.  
  135. \newif\ifSecTitle     \SecTitlefalse
  136.  
  137. \newskip\Tabskss
  138. \Tabskss=0pt plus 1000pt minus 1000pt
  139. \newskip\AboveTitleSkip  \AboveTitleSkip=12pt   % 10pt plus 2pt minus 2pt
  140. \newskip\BelowTitleSkip  \BelowTitleSkip=8pt    % plus 1pt minus 1pt
  141.  
  142. \font \sixteenssb=cmssbx10 scaled \magstep3
  143. \let\titlefont=\sixteenssb
  144. \newbox\T@stBox
  145. \setbox\T@stBox=\hbox{\titlefont O}
  146. \newdimen\stfontheight          \stfontheight=\ht\T@stBox
  147. \newdimen\strulethickness       \strulethickness=.6pt
  148. \newcount\n@stnum               \n@stnum=0
  149. \def \sthrule{\hrule height\strulethickness depth 0pt }
  150. \def \stvrule{\vrule height 2\stfontheight depth\stfontheight
  151.                         width\strulethickness }
  152. \def \sectitlebox #1<{\vbox{\sthrule
  153.         \hbox to \hsize{\stvrule\hfil #1\hfil\vrule width\strulethickness }%
  154.         \sthrule }}
  155.  
  156. \def \secsep{\vskip 5\baselineskip}
  157.  
  158. \def \sectitle#1{\SecTitletrue \def\s@ctitle{#1}}
  159.  
  160. \def \@sectitle#1{\par\penalty-1000\secsep
  161.         \n@stnum=0
  162.         {\def\\{ }\setbox\T@stBox=\hbox{\titlefont#1}%
  163.         \ifdim\wd\T@stBox < \hsize \def\result{\unhbox\T@stBox}%
  164.         \else \def\\{\cr\noalign{\global\advance\n@stnum by 1 }}%
  165.                 \setbox\T@stBox=\vbox{\titlefont
  166.                         \halign{\hfil##\hfil\cr#1\crcr}}%
  167.                 \def\result{\vbox{\unvbox\T@stBox}}\fi
  168.         \ifnum\n@stnum=1 \def\stvrule{\vrule height 3.5\stfontheight
  169.                         depth\stfontheight width\strulethickness }\fi
  170.         \centerline{\sectitlebox \titlefont\result<}}%
  171.         \nobreak \vskip\baselineskip }
  172.  
  173. \newskip\AboveTitleSkip  \AboveTitleSkip=12pt
  174. \newskip\BelowTitleSkip  \BelowTitleSkip=8pt
  175. \newdimen\PreTitleDrop     \PreTitleDrop=0pt
  176.  
  177. \def\maketitle{\par
  178.  \ifdim\PreTitleDrop > 0pt
  179.    \loop
  180.    \ifdim \PreTitleDrop > \textheight
  181.      \vbox{}\vfil\eject
  182.      \advance\PreTitleDrop by -\textheight
  183.    \repeat
  184.    \vbox to \PreTitleDrop{}
  185.    \PreTitleDrop=0pt
  186.  \fi
  187.  \begingroup
  188.  \def\thefootnote{\fnsymbol{footnote}}
  189.  \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}} 
  190.  \@maketitle
  191.  \@thanks
  192.  \endgroup
  193.  \setcounter{footnote}{0}
  194.  \let\maketitle\relax
  195.  \let\@maketitle\relax
  196.  \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
  197.  
  198. % modified \@maketitle to prevent 2 occurrences of \@thanks in footnote
  199. % rw 12 Feb 89
  200. %\def\@maketitle{\ifSecTitle \SecTitlefalse
  201. %        \else \vskip\AboveTitleSkip \fi
  202. %    {\hyphenpenalty=10000 \interlinepenalty=10000
  203. %    \setbox0=\hbox{\ignorespaces\@author}%
  204.  
  205. % rule added above title to conform to updated (89) style
  206. % bb 18 Feb 89
  207. \newdimen\strulethickness       \strulethickness=.6pt
  208. \def\emptythanks#1{}
  209. \def\@maketitle{\ifSecTitle \SecTitlefalse
  210.         \@sectitle{\s@ctitle}%
  211.         \else \vskip\AboveTitleSkip
  212.         \kern\topskip
  213.         \hrule height\z@ depth\z@ width 10pt
  214.         \kern-\topskip
  215.         \kern-\strulethickness
  216.         \hrule height\strulethickness depth\z@
  217.         \kern\medskipamount
  218.     \fi
  219.     {\hyphenpenalty=10000 \interlinepenalty=10000
  220.     \setbox0=\hbox{\let\thanks\emptythanks\ignorespaces\@author}%
  221.     {\noindent\bf\ignorespaces\@title\endgraf}%
  222.     \ifdim \wd0 < 5pt        % omit if author is null
  223.     \else \nobreak \vskip 4pt       % 4pt + \BelowTitleSkip = \baselineskip
  224.         {\leftskip=\parindent \noindent\@author\endgraf}%
  225.     \fi \nobreak \vskip\BelowTitleSkip }}
  226.  
  227. \def\fnum@figure{{\bf Figure \thefigure}}
  228.  
  229. \def\quote{\list{}{\rightmargin.5\leftmargin}\item[]}
  230.  
  231. %    From Dominik Wujastyk's font article.  First paragraph of a quotation
  232. %    will not be indented, and right margin is decreased for narrow columns.
  233. \renewcommand{\quotation}{\list{}{\listparindent 1.5em
  234.     \rightmargin.5\leftmargin\parsep 0pt plus 1pt}\item[]}
  235.  
  236. %  make it possible to use the standard issue/date job file
  237.  
  238. \newcount\issueseqno
  239. \def \v@lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}}
  240. \def \volyr{}
  241. \def \volno{}
  242. \def \vol #1,#2.{\gdef\volno{#1\unskip}%
  243.         \gdef\issno{\ignorespaces#2\unskip}%
  244.         \setbox0=\hbox{\volyr}%
  245.         \ifdim \wd0 > .2em \v@lx \fi }
  246.  
  247. \def \issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}%
  248.         \gdef\bigissdt{#1{\smc\uppercase{#2}} #3}%
  249.         \setbox0=\hbox{\volno}%
  250.         \ifdim \wd0 > .2em \v@lx \fi }
  251.  
  252. \input tugbot.dates
  253.  
  254.  
  255. %  Fix up the running heads and footers.
  256. %  Only one style supported; suppress LaTeX's separate definitions.
  257.  
  258. \def \TUB{TUGboat}
  259. \def \rtitlex{\TUB, \volx }
  260.  
  261. \def\@oddhead{\hbox{}\rm\rtitlex \hfil \thepage}
  262. \def\@evenhead{\rm \thepage\hfil \rtitlex}
  263. \def\@oddfoot{}
  264. \def\@evenfoot{}
  265.  
  266. \def\ps@headings{}
  267.  
  268. \pagestyle{headings}
  269.  
  270.  
  271. %  Miscellaneous defs from plain tugbot.sty.
  272.  
  273. \font\manual=nwmanfnt % to avoid problems while old manfnt is preloaded
  274. \def \MF{{\manual META}\-{\manual FONT}}
  275.  
  276. \def \careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em
  277.                 /\kern-.125em\smash{\lower.3ex\hbox{o}}} \ignorespaces}
  278. \def \sfrac#1/#2{\leavevmode\kern.1em
  279.         \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
  280.         /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
  281.  
  282. %    Support ad-hoc strut construction.
  283. \def \makestrut[#1;#2]{\vrule height#1 depth#2 width\z@ }
  284.  
  285. \def \d@sh#1{\nobreak\thinspace#1\penalty0\thinspace}
  286. \def \dash{\d@sh{--}}
  287. \def \Dash{\d@sh{---}}
  288.  
  289. %    Hack to permit automatic hyphenation after an actual hyphen.
  290.  
  291. \def\hyph{-\penalty0\hskip0pt\relax }
  292.  
  293. \def\slash{/\penalty0\hskip0pt}     % "breakable" slash
  294.  
  295. %    utility registers
  296.  
  297. \newcount\TestCount
  298.  
  299. %    various logos and abbreviations
  300.  
  301. \def \AMSTeX{\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex
  302.         \hbox{$\cal M$}\kern-.2em\cal S$-\TeX}}
  303. \def \LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex
  304.     \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX}
  305. \def \BibTeX{{\rm B\kern-.05em{\sc i\kern-.025emb}\kern-.08em\TeX}}
  306. \font\manual=nwmanfnt % to avoid problems while old manfnt is preloaded
  307. \def \MF{{\manual META}\-{\manual FONT}}
  308. \def \slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo
  309. \def \MFB{{\sl The \slMF book}}
  310. \def \mf{{\sc Metafont}}
  311. \def \Pas{Pascal}
  312. \def \PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
  313. \def \PiCTeX{\PiC\kern-.11em\TeX}
  314. \def \PS{Post\-Script}
  315. \def \SliTeX{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em\TeX}}
  316. \def \TB{{\sl The \TeX book}}
  317. \def \UNIX{{\sc unix}}
  318. \def \TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT}
  319. \def \TUB{TUGboat}
  320. \def \VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}}
  321. \def \WEB{{\tt WEB}}
  322.  
  323. %  Redefine style of section headings to look more like TUGboat.
  324. %  Start with definitions from art10.sty .  (Only \section correct so far.)
  325. %
  326. %  \vskip 8pt \vskip\parskip before; \vskip 4pt after
  327. %  Negative beforeskip suppresses following parindent.
  328.  
  329. \def\section{\@startsection {section}{1}{\z@}{-8pt}{4pt}{\normalsize\bf}}
  330. \def\subsection{\@startsection{subsection}{2}{\z@}{-8pt}{4pt}{\normalsize\bf}}
  331. \def\subsubsection
  332.     {\@startsection{subsubsection}{3}{\z@}{-8pt}{4pt}{\normalsize\bf}}
  333. \def\paragraph{\@startsection
  334.  {paragraph}{4}{\z@}{3.25ex plus 1ex minus .2ex}{-1em}{\normalsize\bf}}
  335. \def\subparagraph{\@startsection
  336.  {subparagraph}{4}{\parindent}{3.25ex plus 1ex minus
  337.  .2ex}{-1em}{\normalsize\bf}}
  338. %    Modify \appendix from art10.sty, to add ``Appendix''
  339. \def\appendix{\par
  340.  \setcounter{section}{0}
  341.  \setcounter{subsection}{0}
  342.  \def\thesection{Appendix \Alph{section}}}
  343.  
  344. \font\tenupit=cmu10
  345.  
  346. \def \EdNote{{\tenupit Editor's note:\enspace }}
  347.  
  348. \endinput
  349.